from 面向对象.定义一个类 import A


# 单继承 注意：私有属性无法被继承
class AExtend(A):
    # 继承会继承父类的所有方法（成员、类，魔法）和变量（成员、类）
    """

        这样会导致父类的成员变量无法被获取，此时需要手动使用super()进行调用
    """
    def __init__(self):
        self.h = 10
        super().__init__()


class B:
    class_param = 1000
    def param1(self):
        print("2")


# 多继承 当继承多个类时，如果继承的类中出现相同的变量或者方法，那么子类在调用时会优先调用最先继承的类的值/方法
class C(A, B):
    pass


# 当子类出现和父类相同的变量/方法，优先使用子类的，想用父类的，使用super()内建函数

c = C()
print(c.class_param)
c.param1()
